// src/utils/navigation.ts
import router from '../router/index.ts' // 直接导入已创建的路由实例
import type { RouteLocationRaw } from 'vue-router'

/**
 * 内部路由跳转（简化版）
 * @param to - 路由路径或名称
 * @param replace - 是否替换当前历史记录
 */
export const navigateTo = (to: RouteLocationRaw, replace = false) => {
  replace ? router.replace(to) : router.push(to)
}

/**
 * 外部链接跳转（带安全防护）
 * @param url - 目标URL
 * @param target - 打开方式
 */
export const openExternalLink = (url: string, target: '_blank' | '_self' = '_blank') => {
  if (target === '_blank') {
    window.open(url, '_blank', 'noopener,noreferrer')
  } else {
    window.location.href = url
  }
}
/**
 * 在新窗口打开内部路由页面
 * @param to - 内部路由参数（路径或命名路由对象）
 */
export const openNewWindow = (to: RouteLocationRaw) => {
  console.log('路由实例:', router) // 应输出一个包含 routes、options 等属性的对象，而非 undefined
  try {
    // 使用导入的 router 实例调用 resolve
    const routeLocation = router.resolve(to)
    // 拼接完整URL（当前域名 + 路由路径）
    const fullUrl = `${window.location.origin}/${import.meta.env.MODE === 'production' ? '/web/' : '/'}${routeLocation.href}`
    console.log(window.location)
    console.log(fullUrl)
    // 新窗口打开
    window.open(fullUrl, '_blank', 'noopener,noreferrer')
  } catch (error) {
    console.error('新窗口打开路由失败:', error)
  }
}
/**
 * 返回上一页
 */
export const goBack = () => {
  router.back()
}
// <template>
//     <div>
//         <button @click="goToProduct(123)">查看产品</button>
//     <button @click="openWebsite">访问官网</button>
//     <button @click="back">返回</button>
//     </div>
//     </template>
//
//     <script setup lang="ts">
// import { navigateTo, openExternalLink, goBack } from '@/utils/navigation';
//
// // 跳转到命名路由
// const goToProduct = (id: number) => {
//   navigateTo({ name: 'product', params: { id } });
// };
//
// // 打开外部链接
// const openWebsite = () => {
//   openExternalLink('https://ufutx.com');
// };
//
// // 返回上一页
// const back = () => {
//   goBack();
// };
// </script>
